package edu.pe.cayetano.model.bo;

import org.apache.commons.beanutils.DynaBean;

import ws.synopsis.frmwrk.common.BResult;
import edu.pe.cayetano.dao.FichaExtraOralDAO;
import edu.pe.cayetano.dao.FichaIntraOralDAO;
import edu.pe.cayetano.dao.HistoriaClinicaDetalleDAO;
import edu.pe.cayetano.framework.BusinessException;
import edu.pe.cayetano.seccd.constantes.ConstantesSECCD;
import edu.pe.cayetano.util.Utilitario;

public class FichaIntraOralBO extends BaseBO{

	public BResult buscarFichaIntraOralEspecifico(DynaBean dyna) throws BusinessException{
		BResult 					retSalida		= null;
		try{
			conectar();
			FichaIntraOralDAO fichaIntraDAO	 	= new FichaIntraOralDAO(conn);
			retSalida 		= fichaIntraDAO.buscarFichaIntraOralEspecifica(Utilitario.getPropertyDynaBean(dyna, "codigo"));
		}catch(Exception e){
			retSalida = new BResult();
			retSalida.setCode(ConstantesSECCD.ERROR_RET);
			retSalida.setMessage("[FichaIntraOralBO] error en metodo buscarFichaIntraOralEspecifico generado por:"+e.getMessage());
		}finally{
			try{
				desconectar();
			}catch(Exception e){
				retSalida = new BResult();
				retSalida.setCode(ConstantesSECCD.ERROR_RET);
				retSalida.setMessage("[FichaIntraOralBO] error en metodo buscarFichaIntraOralEspecifico generador po:"+e.getMessage());
			}
		}
		return retSalida;
	}

	public BResult insertaFichaIntraOralArchivoHC(DynaBean dyna) throws BusinessException{
		BResult 				retSalida				= null;
		try{
			conectar();
			FichaIntraOralDAO fichaDAO	 	= new FichaIntraOralDAO(conn);
			retSalida 	= fichaDAO.insertaFichaIntraOralArchivoHC(dyna);
			if(retSalida.getCode()==0){
				HistoriaClinicaDetalleDAO historiaDAO	 	= new HistoriaClinicaDetalleDAO(conn);
				retSalida 	= historiaDAO.actualizaExisteHistoriaDetalle(dyna,ConstantesSECCD.EXISTE_DIAFIN);
			}
			grabar();
		}catch(Exception e){
			try {
				deshacer();
			} catch (Exception e2) {
				throw new BusinessException(e.getMessage(), e2);
			}
			retSalida = new BResult();
			retSalida.setCode(ConstantesSECCD.ERROR_RET);
			retSalida.setMessage("[FichaIntraOralBO] error en metodo insertaFichaIntraOralArchivoHC generado por:"+e.getMessage());
		}finally{
			try{
				desconectar();
			}catch(Exception e){
				retSalida = new BResult();
				retSalida.setCode(ConstantesSECCD.ERROR_RET);
				retSalida.setMessage("[FichaIntraOralBO] error en metodo insertaFichaIntraOralArchivoHC generador po:"+e.getMessage());
			}
		}
		return retSalida;
	}
	
	public BResult editaFichaIntraOralArchivoHC(DynaBean dyna) throws BusinessException{
		BResult 				retSalida				= null;
		try{
			conectar();
			FichaIntraOralDAO fichaDAO	 	= new FichaIntraOralDAO(conn);
			retSalida 	= fichaDAO.editaFichaIntraOralArchivoHC(dyna);
			grabar();
		}catch(Exception e){
			try {
				deshacer();
			} catch (Exception e2) {
				throw new BusinessException(e.getMessage(), e2);
			}
			retSalida = new BResult();
			retSalida.setCode(ConstantesSECCD.ERROR_RET);
			retSalida.setMessage("[FichaIntraOralBO] error en metodo editaFichaIntraOralArchivoHC generado por:"+e.getMessage());
		}finally{
			try{
				desconectar();
			}catch(Exception e){
				retSalida = new BResult();
				retSalida.setCode(ConstantesSECCD.ERROR_RET);
				retSalida.setMessage("[FichaIntraOralBO] error en metodo editaFichaIntraOralArchivoHC generador po:"+e.getMessage());
			}
		}
		return retSalida;
	}
}
